home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Languages / MPW Oberon 2.1168 / OInterfaces / AEObjects.mod < prev    next >
Encoding:
Text File  |  1995-08-10  |  12.8 KB  |  270 lines  |  [TEXT/MPS ]

  1. (*
  2.      File:        AEObjects.mod
  3.  
  4.      Contains:    AppleEvents Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Package:    Universal Interfaces 2.0 in “MPW Latest” on ETO #17
  8.  
  9.      Copyright:    © 1984-1995 by Apple Computer, Inc.
  10.                  All rights reserved.
  11.  
  12.      Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13.                  stack.  Include the file and version information (from above)
  14.                  in the problem description and send to:
  15.                      Internet:    apple.bugs.applelink.apple.com
  16.                      AppleLink:    APPLE.BUGS
  17.  
  18. *)
  19.  
  20. (*$TAGS-*)
  21. (*$CALLING PASCAL*)
  22. MODULE AEObjects;
  23.  
  24. IMPORT SYSTEM, Types, AppleEvents;
  25.  
  26. (* $PUSH*)
  27. (* $ALIGN MAC68K*)
  28. (* $LibExport+*)
  29.  
  30. CONST
  31.     kAEAND*                        = LONG("AND ");                        (*  0x414e4420  *)
  32.     kAEOR*                        = LONG("OR  ");                        (*  0x4f522020  *)
  33.     kAENOT*                        = LONG("NOT ");                        (*  0x4e4f5420  *)
  34. (****    ABSOLUTE ORDINAL CONSTANTS    ****)
  35.     kAEFirst*                    = LONG("firs");                        (*  0x66697273  *)
  36.     kAELast*                        = LONG("last");                        (*  0x6c617374  *)
  37.     kAEMiddle*                    = LONG("midd");                        (*  0x6d696464  *)
  38.     kAEAny*                        = LONG("any ");                        (*  0x616e7920  *)
  39.     kAEAll*                        = LONG("all ");                        (*  0x616c6c20  *)
  40. (****    RELATIVE ORDINAL CONSTANTS    ****)
  41.     kAENext*                        = LONG("next");                        (*  0x6e657874  *)
  42.     kAEPrevious*                    = LONG("prev");                        (*  0x70726576  *)
  43. (****    KEYWORD CONSTANT     ****)
  44.     keyAECompOperator*            = LONG("relo");                        (*  0x72656c6f  *)
  45.     keyAELogicalTerms*            = LONG("term");                        (*  0x7465726d  *)
  46.     keyAELogicalOperator*        = LONG("logc");                        (*  0x6c6f6763  *)
  47.     keyAEObject1*                = LONG("obj1");                        (*  0x6f626a31  *)
  48.     keyAEObject2*                = LONG("obj2");                        (*  0x6f626a32  *)
  49. (*    ... for Keywords for getting fields out of object specifier records. *)
  50.     keyAEDesiredClass*            = LONG("want");                        (*  0x77616e74  *)
  51.     keyAEContainer*                = LONG("from");                        (*  0x66726f6d  *)
  52.     keyAEKeyForm*                = LONG("form");                        (*  0x666f726d  *)
  53.     keyAEKeyData*                = LONG("seld");
  54.  
  55. (*    ... for Keywords for getting fields out of Range specifier records. *)
  56.     keyAERangeStart*                = LONG("star");                        (*  0x73746172  *)
  57.     keyAERangeStop*                = LONG("stop");                        (*  0x73746f70  *)
  58. (*    ... special handler selectors for OSL Callbacks. *)
  59.     keyDisposeTokenProc*            = LONG("xtok");                        (*  0x78746f6b  *)
  60.     keyAECompareProc*            = LONG("cmpr");                        (*  0x636d7072  *)
  61.     keyAECountProc*                = LONG("cont");                        (*  0x636f6e74  *)
  62.     keyAEMarkTokenProc*            = LONG("mkid");                        (*  0x6d6b6964  *)
  63.     keyAEMarkProc*                = LONG("mark");                        (*  0x6d61726b  *)
  64.     keyAEAdjustMarksProc*        = LONG("adjm");                        (*  0x61646a6d  *)
  65.     keyAEGetErrDescProc*            = LONG("indc");
  66.  
  67. (****    VALUE and TYPE CONSTANTS    ****)
  68. (*    ... possible values for the keyAEKeyForm field of an object specifier. *)
  69.     formAbsolutePosition*        = LONG("indx");                        (*  0x696e6478  *)
  70.     formRelativePosition*        = LONG("rele");                        (*  0x72656c65  *)
  71.     formTest*                    = LONG("test");                        (*  0x74657374  *)
  72.     formRange*                    = LONG("rang");                        (*  0x72616e67  *)
  73.     formPropertyID*                = LONG("prop");                        (*  0x70726f70  *)
  74.     formName*                    = LONG("name");                        (*  0x6e616d65  *)
  75. (*    ... relevant types (some of these are often pared with forms above). *)
  76.     typeObjectSpecifier*            = LONG("obj ");                        (*  0x6f626a20  *)
  77.     typeObjectBeingExamined*        = LONG("exmn");                        (*  0x65786d6e  *)
  78.     typeCurrentContainer*        = LONG("ccnt");                        (*  0x63636e74  *)
  79.     typeToken*                    = LONG("toke");                        (*  0x746f6b65  *)
  80.     typeRelativeDescriptor*        = LONG("rel ");                        (*  0x72656c20  *)
  81.     typeAbsoluteOrdinal*            = LONG("abso");                        (*  0x6162736f  *)
  82.     typeIndexDescriptor*            = LONG("inde");                        (*  0x696e6465  *)
  83.     typeRangeDescriptor*            = LONG("rang");                        (*  0x72616e67  *)
  84.     typeLogicalDescriptor*        = LONG("logi");                        (*  0x6c6f6769  *)
  85.     typeCompDescriptor*            = LONG("cmpd");                        (*  0x636d7064  *)
  86.     typeOSLTokenList*            = LONG("ostl");
  87.  
  88. (* Possible values for flags parameter to AEResolve.  They're additive *)
  89.     kAEIDoMinimum*                = $0000;
  90.     kAEIDoWhose*                    = $0001;
  91.     kAEIDoMarking*                = $0004;
  92.     kAEPassSubDescs*                = $0008;
  93.     kAEResolveNestedLists*        = $0010;
  94.     kAEHandleSimpleRanges*        = $0020;
  95.     kAEUseRelativeIterators*        = $0040;
  96.  
  97. (**** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION *)
  98.     typeWhoseDescriptor*            = LONG("whos");                        (*  0x77686f73  *)
  99.     formWhose*                    = LONG("whos");                        (*  0x77686f73  *)
  100.     typeWhoseRange*                = LONG("wrng");                        (*  0x77726e67  *)
  101.     keyAEWhoseRangeStart*        = LONG("wstr");                        (*  0x77737472  *)
  102.     keyAEWhoseRangeStop*            = LONG("wstp");                        (*  0x77737470  *)
  103.     keyAEIndex*                    = LONG("kidx");                        (*  0x6b696478  *)
  104.     keyAETest*                    = LONG("ktst");
  105.  
  106. (**
  107.     used for rewriting tokens in place of LONG("ccnt") descriptors
  108.     This record is only of interest to those who, when they...
  109.     ...get ranges as key data in their accessor procs, choose
  110.     ...to resolve them manually rather than call AEResolve again.
  111. **)
  112.  
  113. TYPE
  114.     ccntTokenRecord* = RECORD
  115.         tokenClass*:                AppleEvents.DescType;
  116.         token*:                    AppleEvents.AEDesc;
  117.     END;
  118.  
  119.     ccntTokenRecPtr* = POINTER TO ccntTokenRecord;
  120.     ccntTokenRecHandle* = HANDLE TO ccntTokenRecord (*ΔΔ POINTER TO ccntTokenRecPtr*);
  121.  
  122.     DescPtr* = POINTER TO AppleEvents.AEDesc;
  123.     DescHandle* = HANDLE TO AppleEvents.AEDesc (*ΔΔ POINTER TO DescPtr*);
  124.  
  125. (* typedefs providing type checking for procedure pointers* *)
  126.     OSLAccessorProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (desiredClass: AppleEvents.DescType; (*CONST*)VAR container: AppleEvents.AEDesc; containerClass: AppleEvents.DescType; form: AppleEvents.DescType; (*CONST*)VAR selectionData: AppleEvents.AEDesc; value: DescPtr; accessorRefcon: LONGINT): Types.OSErr;
  127.     OSLCompareProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (oper: AppleEvents.DescType; (*CONST*)VAR obj1: AppleEvents.AEDesc; (*CONST*)VAR obj2: AppleEvents.AEDesc; VAR result: BOOLEAN): Types.OSErr;
  128.     OSLCountProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (desiredType: AppleEvents.DescType; containerClass: AppleEvents.DescType; (*CONST*)VAR container: AppleEvents.AEDesc; VAR result: LONGINT): Types.OSErr;
  129.     OSLDisposeTokenProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (unneededToken: DescPtr): Types.OSErr;
  130.     OSLGetMarkTokenProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR dContainerToken: AppleEvents.AEDesc; containerClass: AppleEvents.DescType; result: DescPtr): Types.OSErr;
  131.     OSLGetErrDescProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (VAR appDescPtr: DescPtr): Types.OSErr;
  132.     OSLMarkProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE ((*CONST*)VAR dToken: AppleEvents.AEDesc; (*CONST*)VAR markToken: AppleEvents.AEDesc; index: LONGINT): Types.OSErr;
  133.     OSLAdjustMarksProcPtr* = (*ΔΔ Types.ProcPtr;*) PROCEDURE (newStart: LONGINT; newStop: LONGINT; (*CONST*)VAR markToken: AppleEvents.AEDesc): Types.OSErr;
  134.     OSLAccessorUPP* = Types.UniversalProcPtr;
  135.     OSLCompareUPP* = Types.UniversalProcPtr;
  136.     OSLCountUPP* = Types.UniversalProcPtr;
  137.     OSLDisposeTokenUPP* = Types.UniversalProcPtr;
  138.     OSLGetMarkTokenUPP* = Types.UniversalProcPtr;
  139.     OSLGetErrDescUPP* = Types.UniversalProcPtr;
  140.     OSLMarkUPP* = Types.UniversalProcPtr;
  141.     OSLAdjustMarksUPP* = Types.UniversalProcPtr;
  142.  
  143. CONST
  144.     uppOSLAccessorProcInfo* = $000FFFE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  145.     uppOSLCompareProcInfo* = $00003FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  146.     uppOSLCountProcInfo* = $00003FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  147.     uppOSLDisposeTokenProcInfo* = $000000E0; (* PROCEDURE (4 byte param): 2 byte result; *)
  148.     uppOSLGetMarkTokenProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  149.     uppOSLGetErrDescProcInfo* = $000000E0; (* PROCEDURE (4 byte param): 2 byte result; *)
  150.     uppOSLMarkProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  151.     uppOSLAdjustMarksProcInfo* = $00000FE0; (* PROCEDURE (4 byte param, 4 byte param, 4 byte param): 2 byte result; *)
  152.  
  153. PROCEDURE NewOSLAccessorProc*(userRoutine: OSLAccessorProcPtr): OSLAccessorUPP;
  154.     (*$IF NOT GENERATINGCFM *)
  155.     INLINE PASCAL $2E9F;
  156.     (*$END*)
  157.  
  158. PROCEDURE NewOSLCompareProc*(userRoutine: OSLCompareProcPtr): OSLCompareUPP;
  159.     (*$IF NOT GENERATINGCFM *)
  160.     INLINE PASCAL $2E9F;
  161.     (*$END*)
  162.  
  163. PROCEDURE NewOSLCountProc*(userRoutine: OSLCountProcPtr): OSLCountUPP;
  164.     (*$IF NOT GENERATINGCFM *)
  165.     INLINE PASCAL $2E9F;
  166.     (*$END*)
  167.  
  168. PROCEDURE NewOSLDisposeTokenProc*(userRoutine: OSLDisposeTokenProcPtr): OSLDisposeTokenUPP;
  169.     (*$IF NOT GENERATINGCFM *)
  170.     INLINE PASCAL $2E9F;
  171.     (*$END*)
  172.  
  173. PROCEDURE NewOSLGetMarkTokenProc*(userRoutine: OSLGetMarkTokenProcPtr): OSLGetMarkTokenUPP;
  174.     (*$IF NOT GENERATINGCFM *)
  175.     INLINE PASCAL $2E9F;
  176.     (*$END*)
  177.  
  178. PROCEDURE NewOSLGetErrDescProc*(userRoutine: OSLGetErrDescProcPtr): OSLGetErrDescUPP;
  179.     (*$IF NOT GENERATINGCFM *)
  180.     INLINE PASCAL $2E9F;
  181.     (*$END*)
  182.  
  183. PROCEDURE NewOSLMarkProc*(userRoutine: OSLMarkProcPtr): OSLMarkUPP;
  184.     (*$IF NOT GENERATINGCFM *)
  185.     INLINE PASCAL $2E9F;
  186.     (*$END*)
  187.  
  188. PROCEDURE NewOSLAdjustMarksProc*(userRoutine: OSLAdjustMarksProcPtr): OSLAdjustMarksUPP;
  189.     (*$IF NOT GENERATINGCFM *)
  190.     INLINE PASCAL $2E9F;
  191.     (*$END*)
  192.  
  193. PROCEDURE CallOSLAccessorProc*(desiredClass: AppleEvents.DescType; (*CONST*)VAR container: AppleEvents.AEDesc; containerClass: AppleEvents.DescType; form: AppleEvents.DescType; (*CONST*)VAR selectionData: AppleEvents.AEDesc; value: DescPtr; accessorRefcon: LONGINT; userRoutine: OSLAccessorUPP): Types.OSErr;
  194.     (*$IF NOT GENERATINGCFM*)
  195.     INLINE PASCAL $205F, $4E90;
  196.     (*$END*)
  197.  
  198. PROCEDURE CallOSLCompareProc*(oper: AppleEvents.DescType; (*CONST*)VAR obj1: AppleEvents.AEDesc; (*CONST*)VAR obj2: AppleEvents.AEDesc; VAR result: BOOLEAN; userRoutine: OSLCompareUPP): Types.OSErr;
  199.     (*$IF NOT GENERATINGCFM*)
  200.     INLINE PASCAL $205F, $4E90;
  201.     (*$END*)
  202.  
  203. PROCEDURE CallOSLCountProc*(desiredType: AppleEvents.DescType; containerClass: AppleEvents.DescType; (*CONST*)VAR container: AppleEvents.AEDesc; VAR result: LONGINT; userRoutine: OSLCountUPP): Types.OSErr;
  204.     (*$IF NOT GENERATINGCFM*)
  205.     INLINE PASCAL $205F, $4E90;
  206.     (*$END*)
  207.  
  208. PROCEDURE CallOSLDisposeTokenProc*(unneededToken: DescPtr; userRoutine: OSLDisposeTokenUPP): Types.OSErr;
  209.     (*$IF NOT GENERATINGCFM*)
  210.     INLINE PASCAL $205F, $4E90;
  211.     (*$END*)
  212.  
  213. PROCEDURE CallOSLGetMarkTokenProc*((*CONST*)VAR dContainerToken: AppleEvents.AEDesc; containerClass: AppleEvents.DescType; result: DescPtr; userRoutine: OSLGetMarkTokenUPP): Types.OSErr;
  214.     (*$IF NOT GENERATINGCFM*)
  215.     INLINE PASCAL $205F, $4E90;
  216.     (*$END*)
  217.  
  218. PROCEDURE CallOSLGetErrDescProc*(VAR appDescPtr: DescPtr; userRoutine: OSLGetErrDescUPP): Types.OSErr;
  219.     (*$IF NOT GENERATINGCFM*)
  220.     INLINE PASCAL $205F, $4E90;
  221.     (*$END*)
  222.  
  223. PROCEDURE CallOSLMarkProc*((*CONST*)VAR dToken: AppleEvents.AEDesc; (*CONST*)VAR markToken: AppleEvents.AEDesc; index: LONGINT; userRoutine: OSLMarkUPP): Types.OSErr;
  224.     (*$IF NOT GENERATINGCFM*)
  225.     INLINE PASCAL $205F, $4E90;
  226.     (*$END*)
  227.  
  228. PROCEDURE CallOSLAdjustMarksProc*(newStart: LONGINT; newStop: LONGINT; (*CONST*)VAR markToken: AppleEvents.AEDesc; userRoutine: OSLAdjustMarksUPP): Types.OSErr;
  229.     (*$IF NOT GENERATINGCFM*)
  230.     INLINE PASCAL $205F, $4E90;
  231.     (*$END*)
  232.  
  233. PROCEDURE AEObjectInit*(): Types.OSErr;
  234.     EXTERNAL PASCAL;
  235. (* Not done by inline, but by direct linking into code.  It sets up the pack
  236.   such that further calls can be via inline *)
  237. PROCEDURE AESetObjectCallbacks*(myCompareProc: OSLCompareUPP; myCountProc: OSLCountUPP; myDisposeTokenProc: OSLDisposeTokenUPP; myGetMarkTokenProc: OSLGetMarkTokenUPP; myMarkProc: OSLMarkUPP; myAdjustMarksProc: OSLAdjustMarksUPP; myGetErrDescProcPtr: OSLGetErrDescUPP): Types.OSErr;
  238.     (*$IF NOT GENERATINGCFM*)
  239.     INLINE PASCAL $303C, $0E35, $A816;
  240.     (*$END*)
  241. PROCEDURE AEResolve*((*CONST*)VAR objectSpecifier: AppleEvents.AEDesc; callbackFlags: INTEGER; theToken: DescPtr): Types.OSErr;
  242.     (*$IF NOT GENERATINGCFM*)
  243.     INLINE PASCAL $303C, $0536, $A816;
  244.     (*$END*)
  245. PROCEDURE AEInstallObjectAccessor*(desiredClass: AppleEvents.DescType; containerType: AppleEvents.DescType; theAccessor: OSLAccessorUPP; accessorRefcon: LONGINT; isSysHandler: BOOLEAN): Types.OSErr;
  246.     (*$IF NOT GENERATINGCFM*)
  247.     INLINE PASCAL $303C, $0937, $A816;
  248.     (*$END*)
  249. PROCEDURE AERemoveObjectAccessor*(desiredClass: AppleEvents.DescType; containerType: AppleEvents.DescType; theAccessor: OSLAccessorUPP; isSysHandler: BOOLEAN): Types.OSErr;
  250.     (*$IF NOT GENERATINGCFM*)
  251.     INLINE PASCAL $303C, $0738, $A816;
  252.     (*$END*)
  253. PROCEDURE AEGetObjectAccessor*(desiredClass: AppleEvents.DescType; containerType: AppleEvents.DescType; VAR accessor: OSLAccessorUPP; VAR accessorRefcon: LONGINT; isSysHandler: BOOLEAN): Types.OSErr;
  254.     (*$IF NOT GENERATINGCFM*)
  255.     INLINE PASCAL $303C, $0939, $A816;
  256.     (*$END*)
  257. PROCEDURE AEDisposeToken*(theToken: DescPtr): Types.OSErr;
  258.     (*$IF NOT GENERATINGCFM*)
  259.     INLINE PASCAL $303C, $023A, $A816;
  260.     (*$END*)
  261. PROCEDURE AECallObjectAccessor*(desiredClass: AppleEvents.DescType; (*CONST*)VAR containerToken: AppleEvents.AEDesc; containerClass: AppleEvents.DescType; keyForm: AppleEvents.DescType; (*CONST*)VAR keyData: AppleEvents.AEDesc; token: DescPtr): Types.OSErr;
  262.     (*$IF NOT GENERATINGCFM*)
  263.     INLINE PASCAL $303C, $0C3B, $A816;
  264.     (*$END*)
  265.  
  266. (* $ALIGN RESET*)
  267. (* $POP*)
  268.  
  269.  END AEObjects.
  270.